// 导入NextRequest和NextResponse类型，以便在代码中使用
import { NextRequest, NextResponse } from "next/server";
// 导入PrismaClient，以便在代码中使用
import { PrismaClient } from "@prisma/client";

// 定义UserRequest接口，用于存储用户id
interface UserRequest {
  userId: string;
}

// 创建PrismaClient实例
const prisma = new PrismaClient();

// 导出POST函数，用于处理创建用户的请求
export async function POST(request: NextRequest) {
  try {
    // 从请求中获取用户id
    const { userId } = (await request.json()) as UserRequest;
    console.log("dwadawdawduserId", userId);

    // 如果用户id不存在，则返回错误信息
    if (!userId) {
      return NextResponse.json(
        {
          message: "请求失败，用户id不存在",
        },
        { status: 400 }
      );
    }

    // 使用PrismaClient查找用户
    let user = await prisma.user.findUnique({
      where: {
        userId: userId,
      },
    });

    // 如果用户不存在，则创建用户
    if (!user) {
      user = await prisma.user.create({
        data: {
          userId: userId,
        },
      });
    }

    // 返回用户信息
    return NextResponse.json(
      {
        user,
      },
      { status: 200 }
    );
  } catch (e) {
    console.error("🚀 ~ file: route.ts:13 ~ POST ~ e:", e);
    // 如果发生错误，则返回内部错误信息
    return NextResponse.json(
      {
        message: "Internal Error",
      },
      { status: 500 }
    );
  }
}
